#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint);
    QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕
    QRect rect2 = screen->availableGeometry();
    this->setGeometry(0, 0, rect2.size().width() - 5, rect2.size().height() - 5);
    // this->centralWidget()->setStyleSheet("background-color:Yello;");

    // 创建水平布局用于放置按钮，作为标题栏区域的替代布局
    QHBoxLayout *titleRightLayout = new QHBoxLayout();
    titleRightLayout->setContentsMargins(0, 0, 0, 0);  // 设置布局内边距为0，确保按钮紧密排列
    titleRightLayout->setSpacing(0);  // 设置按钮之间的间距为0
    m_minSizeButton = new QPushButton("-");
    m_maxSizeButton = new QPushButton("□");
    m_closeButton = new QPushButton("X");
    m_labSoftVersion = new QLabel();
    m_labSoftVersion->setText("V 1.0.0   ");
    QFont font = m_labSoftVersion->font();
    font.setPointSize(30); // 设置字体大小为20
    m_labSoftVersion->setFont(font);

    QPalette palette = m_labSoftVersion->palette();
    palette.setColor(QPalette::WindowText, Qt::white); // 设置字体颜色为红色
    m_labSoftVersion->setPalette(palette);
    m_labSoftVersion->show();
    // 设置最大化最小化关闭按钮的样式
    QSize  btnSize;
    btnSize.setHeight(40);
    btnSize.setWidth(70);

    m_minSizeButton->setMinimumSize(btnSize);
    m_maxSizeButton->setMinimumSize(btnSize);
    m_closeButton->setMinimumSize(btnSize);
    // m_minimizeButton->setStyleSheet("min-width: 100px; min-height: 50px;");
    // m_minSizeButton->setStyleSheet("color: white;");  // 设置按钮的文字颜色为红色
    QPalette paletteMinBtn = m_minSizeButton->palette();
    paletteMinBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_minSizeButton->setPalette(paletteMinBtn);

    QPalette paletteMaxBtn = m_maxSizeButton->palette();
    paletteMaxBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_maxSizeButton->setPalette(paletteMaxBtn);

    QPalette paletteCloseBtn = m_closeButton->palette();
    paletteCloseBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_closeButton->setPalette(paletteCloseBtn);
    m_minSizeButton->setFont(QFont("宋体", 22));
    m_maxSizeButton->setFont(QFont("宋体", 22));
    m_closeButton->setFont(QFont("宋体", 22));

    m_minSizeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                   "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                   "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );
    m_maxSizeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                   "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                   "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );
    m_closeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                 "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                 "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );

    // 连接最小化按钮的点击信号到窗口的最小化槽函数
    connect(m_minSizeButton, &QPushButton::clicked, this, &QMainWindow::showMinimized);
    // 连接最大化按钮的点击信号到相应的槽函数，用于处理最大化和还原操作

    connect(m_maxSizeButton, &QPushButton::clicked, this, [this]() {
        QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕
        QRect rect2 = screen->availableGeometry();
        if (this->windowState().testFlag(Qt::WindowMaximized) || 0 == iMainWindowStatus) {
            // this->showNormal();
            this->setGeometry(rect2.size().width()/5, rect2.size().height()/5, rect2.size().width()*3/5, rect2.size().height()*3/5);
            iMainWindowStatus = 1;
        } else {
            //this->showMaximized();
            this->setGeometry(0, 0, rect2.size().width() - 5, rect2.size().height() - 5);
            iMainWindowStatus = 0;
        }
    });
    // 连接关闭按钮的点击信号到窗口的关闭槽函数
    connect(m_closeButton, &QPushButton::clicked, this, &QMainWindow::close);

    // 将按钮添加到水平布局中，并设置对齐方式为右对齐，使按钮靠右显示（移动到右上角）
    titleRightLayout->addWidget(m_labSoftVersion);
    titleRightLayout->addWidget(m_minSizeButton);
    titleRightLayout->addWidget(m_maxSizeButton);
    titleRightLayout->addWidget(m_closeButton);
    titleRightLayout->setAlignment(Qt::AlignRight);

    m_labSoftLog = new QLabel();
    m_labSoftName = new QLabel();
    m_labSoftLog->setFixedSize(120, 60);
    m_labSoftLog->setStyleSheet("QLabel {border-image: url(:/Image/Test.png); border: 1px solid black; background-repeat: no-repeat; background-position: center;  }");

    m_labSoftName->setText("    摇床管理软件  ");
    QFont fontName = m_labSoftName->font();
    fontName.setPointSize(30); // 设置字体大小为20
    m_labSoftName->setFont(fontName);

    QPalette paletteName = m_labSoftName->palette();
    paletteName.setColor(QPalette::WindowText, Qt::white); // 设置字体颜色为红色
    m_labSoftName->setPalette(paletteName);

    // 添加一个Log显示区域, 再添加一个单选按钮
    QHBoxLayout *titleLeftLayout = new QHBoxLayout();
    titleLeftLayout->setContentsMargins(0, 0, 0, 0);
    titleLeftLayout->setSpacing(0);
    titleLeftLayout->setAlignment(Qt::AlignLeft);
    titleLeftLayout->addWidget(m_labSoftLog);
    titleLeftLayout->addWidget(m_labSoftName);

    QHBoxLayout *titleLayout = new QHBoxLayout();
    titleLayout->setContentsMargins(0, 0, 0, 0);
    titleLayout->setSpacing(0);
    titleLayout->setAlignment(Qt::AlignTop);
    titleLayout->addLayout(titleLeftLayout);
    titleLayout->addLayout(titleRightLayout);

    // 创建一个QWidget作为标题栏区域的容器，设置其布局为上面创建的buttonLayout
    QWidget *titleBarWidget = new QWidget();
    titleBarWidget->setLayout(titleLayout);  // 把三个按钮添加进来  到这里还是正常的...
    // Head标题栏的样式控制
    QRect centWidgetRect = ui->centralwidget->geometry();
    titleBarWidget->setGeometry(centWidgetRect.x(), centWidgetRect.y(), centWidgetRect.width(), 60);
    titleBarWidget->setFixedHeight(60);

    // titleBarWidget->setBackgroundRole()
    // titleBarWidget->setStyleSheet("background-color: grey;");
    titleBarWidget->setStyleSheet("QWidget { background-color: #052753; }");

    // 创建一个QWidget作为Status显示和控制区域
    // // 创建一个QWidget作为标题栏区域的容器，设置其布局为上面创建的buttonLayout
    LineChartsWidget *linWidget = new LineChartsWidget(this);   // 折线图
    // QWidget *linWidget = new QWidget(this);   // 折线图
    StatusCtlWidget *statusWidget = new StatusCtlWidget(this);   // 状态控制及显示区域

    linWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
    statusWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
    // statusWidget->setStyleSheet("background-color:Grey;");
    // linWidget->setStyleSheet("background-color:White;");

    QRect currentRect = this->geometry();
    qDebug("Shuai Get Size: Pose.x:%d Pose.y%d Size.Width:%d Size.Height:%d", currentRect.x(), currentRect.y(), currentRect.width(), currentRect.height());
    // linWidget->setGeometry(0, 60, currentRect.width()/2, currentRect.height());
    // linWidget->setGeometry(centWidgetRect.x(), centWidgetRect.y() + 60, centWidgetRect.width()/2, centWidgetRect.height() - 60);
    linWidget->setVisible(true);
    // statusWidget->setGeometry(currentRect.width(), 60, currentRect.width()/2, currentRect.height());
    // statusWidget->setGeometry(centWidgetRect.width()/2, centWidgetRect.y() + 60, centWidgetRect.width()/2, centWidgetRect.height() - 60);
    statusWidget->setVisible(true);

    // 创建一个水平布局, 将 除标题栏以外的空间一分为二, 再加入折线图Widget和状态显示的widget
    QHBoxLayout *centerLayout = new QHBoxLayout(this);
    centerLayout->setContentsMargins(0, 0, 0, 0);
    centerLayout->setSpacing(0);
    centerLayout->addWidget(linWidget);
    centerLayout->addWidget(statusWidget);

    QWidget *centWidget = new QWidget(this);
    centWidget->setLayout(centerLayout);
    QVBoxLayout *mainLayout = new QVBoxLayout(ui->centralwidget);
    mainLayout->setContentsMargins(0, 0, 0, 0);
    mainLayout->setSpacing(0);
    mainLayout->addWidget(titleBarWidget);
    mainLayout->addWidget(centWidget);

    // statusWidget->setVisible(false);
    // linWidget->setVisible(false);
    this->setCentralWidget(ui->centralwidget);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::setupTitleBar()
{
    // 创建水平布局用于放置按钮，作为标题栏区域的替代布局
    QHBoxLayout *titleRightLayout = new QHBoxLayout();
    titleRightLayout->setContentsMargins(0, 0, 0, 0);  // 设置布局内边距为0，确保按钮紧密排列
    titleRightLayout->setSpacing(0);  // 设置按钮之间的间距为0

    m_minSizeButton = new QPushButton("-");
    m_maxSizeButton = new QPushButton("□");
    m_closeButton = new QPushButton("×");
    m_labSoftVersion = new QLabel();
    m_labSoftVersion->setText("V 1.0.0   ");
    QFont font = m_labSoftVersion->font();
    font.setPointSize(30); // 设置字体大小为20
    m_labSoftVersion->setFont(font);

    QPalette palette = m_labSoftVersion->palette();
    palette.setColor(QPalette::WindowText, Qt::white); // 设置字体颜色为红色
    m_labSoftVersion->setPalette(palette);
    m_labSoftVersion->show();

    // 设置最大化最小化关闭按钮的样式
    QSize  btnSize;
    btnSize.setHeight(40);
    btnSize.setWidth(70);

    m_minSizeButton->setMinimumSize(btnSize);
    m_maxSizeButton->setMinimumSize(btnSize);
    m_closeButton->setMinimumSize(btnSize);
    // m_minimizeButton->setStyleSheet("min-width: 100px; min-height: 50px;");
    // m_minSizeButton->setStyleSheet("color: white;");  // 设置按钮的文字颜色为红色
    QPalette paletteMinBtn = m_minSizeButton->palette();
    paletteMinBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_minSizeButton->setPalette(paletteMinBtn);

    QPalette paletteMaxBtn = m_maxSizeButton->palette();
    paletteMaxBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_maxSizeButton->setPalette(paletteMaxBtn);

    QPalette paletteCloseBtn = m_closeButton->palette();
    paletteCloseBtn.setColor(QPalette::ButtonText, Qt::white);  // 设置按钮的文字颜色为红色
    m_closeButton->setPalette(paletteCloseBtn);

    m_minSizeButton->setFont(QFont("宋体", 22));
    m_maxSizeButton->setFont(QFont("宋体", 22));
    m_closeButton->setFont(QFont("宋体", 22));

    m_minSizeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                    "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                    "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );
    m_maxSizeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                   "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                   "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );
    m_closeButton->setStyleSheet("QPushButton {" "border-radius: 12px;" /** 设置圆角半径 */ "background-color: gray;" /** 设置背景颜色 */ "padding: 8px;" "}" /** 设置内边距，以确保按钮内容不会紧贴圆角边缘 */
                                   "QPushButton:hover {" /** 可选：设置鼠标悬停时的样式 */ "background-color: lightgray;" "}"
                                   "QPushButton:pressed {" /**  可选：设置按钮被按下时的样式 */ "background-color: darkgray;" "}" );

    // 连接最小化按钮的点击信号到窗口的最小化槽函数
    connect(m_minSizeButton, &QPushButton::clicked, this, &QMainWindow::showMinimized);
    // 连接最大化按钮的点击信号到相应的槽函数，用于处理最大化和还原操作

    connect(m_maxSizeButton, &QPushButton::clicked, this, [this]() {
        QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕
        QRect rect2 = screen->availableGeometry();
        if (this->windowState().testFlag(Qt::WindowMaximized) || 0 == iMainWindowStatus) {
            // this->showNormal();
            this->setGeometry(rect2.size().width()/5, rect2.size().height()/5, rect2.size().width()*3/5, rect2.size().height()*3/5);
            iMainWindowStatus = 1;
        } else {
            //this->showMaximized();
            this->setGeometry(0, 0, rect2.size().width() - 5, rect2.size().height() - 5);
            iMainWindowStatus = 0;
        }
    });
    // 连接关闭按钮的点击信号到窗口的关闭槽函数
    connect(m_closeButton, &QPushButton::clicked, this, &QMainWindow::close);

    // 将按钮添加到水平布局中，并设置对齐方式为右对齐，使按钮靠右显示（移动到右上角）
    titleRightLayout->addWidget(m_labSoftVersion);
    titleRightLayout->addWidget(m_minSizeButton);
    titleRightLayout->addWidget(m_maxSizeButton);
    titleRightLayout->addWidget(m_closeButton);
    titleRightLayout->setAlignment(Qt::AlignRight);

    m_labSoftLog = new QLabel();
    m_labSoftName = new QLabel();
    m_labSoftLog->setFixedSize(120, 60);
    m_labSoftLog->setStyleSheet("QLabel {border-image: url(:/Image/Test.png); border: 1px solid black; background-repeat: no-repeat; background-position: center;  }");

    m_labSoftName->setText("    摇床管理软件  ");
    QFont fontName = m_labSoftName->font();
    fontName.setPointSize(30); // 设置字体大小为20
    m_labSoftName->setFont(fontName);

    QPalette paletteName = m_labSoftName->palette();
    paletteName.setColor(QPalette::WindowText, Qt::white); // 设置字体颜色为红色
    m_labSoftName->setPalette(paletteName);

    // 添加一个Log显示区域, 再添加一个单选按钮
    QHBoxLayout *titleLeftLayout = new QHBoxLayout();
    titleLeftLayout->setContentsMargins(0, 0, 0, 0);
    titleLeftLayout->setAlignment(Qt::AlignLeft);
    titleLeftLayout->addWidget(m_labSoftLog);
    titleLeftLayout->addWidget(m_labSoftName);

    QHBoxLayout *titleLayout = new QHBoxLayout();
    titleLayout->addLayout(titleLeftLayout);
    titleLayout->addLayout(titleRightLayout);

    // 创建一个QWidget作为标题栏区域的容器，设置其布局为上面创建的buttonLayout
    QWidget *titleBarWidget = new QWidget(this);
    titleBarWidget->setLayout(titleLayout);  // 把三个按钮添加进来  到这里还是正常的...
    titleBarWidget->geometry();
    // Head标题栏的样式控制
    QRect centWidgetRect = ui->centralwidget->geometry();
    titleBarWidget->setGeometry(centWidgetRect.x(), centWidgetRect.y(), centWidgetRect.width(), 60);

    // titleBarWidget->setBackgroundRole()
    // titleBarWidget->setStyleSheet("background-color: grey;");
    titleBarWidget->setStyleSheet("QWidget { background-color: #052753; }");


    // 创建一个QWidget作为Status显示和控制区域
    // 创建一个QWidget作为标题栏区域的容器，设置其布局为上面创建的buttonLayout
    // LineChartsWidget *linWidget = new LineChartsWidget(this);   // 折线图
    QWidget *linWidget = new QWidget(this);   // 折线图
    QWidget *statusWidget = new QWidget(this);   // 状态控制及显示区域
    statusWidget->setStyleSheet("background-color:Blue;");
    linWidget->setStyleSheet("background-color:Red;");
    // linWidget->setStyleSheet("QWidget { background-color: #052753; }");

    QRect currentRect = this->geometry();
    qDebug("Shuai Get Size: Pose.x:%d Pose.y%d Size.Width:%d Size.Height:%d", currentRect.x(), currentRect.y(), currentRect.width(), currentRect.height());
    // linWidget->setGeometry(0, 60, currentRect.width()/2, currentRect.height());
    linWidget->setGeometry(centWidgetRect.x(), centWidgetRect.y() + 60, centWidgetRect.width()/2, centWidgetRect.height() - 60);
    linWidget->setVisible(true);
    // statusWidget->setGeometry(currentRect.width(), 60, currentRect.width()/2, currentRect.height());
    statusWidget->setGeometry(centWidgetRect.width()/2, centWidgetRect.y() + 60, centWidgetRect.width()/2, centWidgetRect.height() - 60);
    statusWidget->setVisible(true);
    // linWidget->show();

    // 创建一个水平布局, 将 除标题栏以外的空间一分为二, 再加入折线图Widget和状态显示的widget
    QHBoxLayout *centerLayout = new QHBoxLayout();

    centerLayout->addWidget(linWidget);
    centerLayout->addWidget(statusWidget);

    QWidget *centWidget = new QWidget(this);
    QRect  rectCentWid = centWidget->geometry();
    qDebug("Test 5 x=$d y=%d width=%d height=%d", rectCentWid.x(), rectCentWid.y(), rectCentWid.width(), rectCentWid.height());
    centWidget->setLayout(centerLayout);
    // 创建垂直布局，将标题栏区域的容器放在顶部，后续可添加其他内容区域的布局等,
    // 问题记录: 这里明明加了三个Widget, 为什么只显示一个呢???
    QVBoxLayout *mainLayout = new QVBoxLayout();
    mainLayout->setContentsMargins(0, 0, 0, 0);
    // mainLayout->setAlignment(Qt::AlignTop);

    mainLayout->setAlignment(Qt::AlignTop);

    // mainLayout->addWidget(titleBarWidget);
    mainLayout->addWidget(centWidget);


    // mainLayout->addWidget(linWidget);
    // mainLayout->addWidget(statusWidget);


    // 这里这种写法有问题, 这里没有显示, 也有可能是被挡住了
    // mainLayout->addLayout(titleLayout);
    // mainLayout->addLayout(centerLayout);
    // 这里在添加一个区域;

    // 创建一个QWidget作为整体窗口内容的容器，设置其布局为mainLayout
    // QWidget *centralWidget = new QWidget(this);
    // QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕
    // QRect rect2 = screen->availableGeometry();
    // centralWidget->setGeometry(rect2.size().width()/5, rect2.size().height()/5, rect2.size().width()*3/5, rect2.size().height()*3/5);
    // centralWidget->setStyleSheet("background-color:Yellow;");
    // // centralWidget.set
    // centralWidget->setLayout(mainLayout);

    // centralWidget->geometry();
    // qDebug("Test x=%d y=%d width=%d height=%d", centralWidget->x(), centralWidget->y(), centralWidget->width(), centralWidget->height());
    // 将这个包含了标题栏区域和后续可添加内容区域的容器设置为窗口的中心部件
    // this->setCentralWidget(centralWidget);

}

void MainWindow::setupCenterWidget()
{

}

void MainWindow::setMainWidget()
{

}

// 以下两个函数用于实现窗口的拖动功能，模拟有标题栏时的拖动操作
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        m_dragPosition = event->globalPos() - this->frameGeometry().topLeft();
        event->accept();
    }
    QMainWindow::mousePressEvent(event);
}

void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
        this->move(event->globalPos() - m_dragPosition);
        event->accept();
    }
    QMainWindow::mouseMoveEvent(event);
}


// void MainWindow::resizeEvent(QResizeEvent *event)
// {
//     //     // w.setBaseSize(rect2.size().width(), rect2.size().height());

//     QSize newSize = event->size();
//     if (event->spontaneous() && newSize == this->size()) {
//         // 如果是系统自动触发（比如最大化操作后系统的一些后续调整）且尺寸未实际改变，直接返回，避免重复处理
//         return;
//     }
//     if (newSize.width() > maxWidth || newSize.height() > maxHeight) {
//         if (newSize.width() > maxWidth) {
//             newSize.setWidth(maxWidth);
//         }
//         if (newSize.height() > maxHeight) {
//             newSize.setHeight(maxHeight);
//         }
//         // 只有当窗口尺寸超出设定范围时才进行调整，避免不必要的重复设置
//         this->resize(newSize);
//     } else if (isMaximizing) {
//         // 如果是正在进行最大化操作（通过点击最大化按钮触发），直接使用系统提供的最大化后的尺寸，不做额外调整
//         this->resize(newSize);
//         isMaximizing = false;  // 重置标记，表明本次最大化操作已完成
//     } else {
//         // 其他正常的窗口尺寸调整情况，正常调用父类的resizeEvent
//         QMainWindow::resizeEvent(event);
//     }
// }

// void MainWindow::changeEvent(QEvent *event)
// {
//     if (event->type() == QEvent::WindowStateChange) {
//         Qt::WindowStates windowStates = this->windowState();
//         if (windowStates.testFlag(Qt::WindowMaximized)) {
//             // 窗口处于最大化状态，这里可以添加代码来区分是第几次点击最大化按钮等情况
//             // 例如，可以通过记录之前的状态来判断是否是从非最大化状态切换过来的
//             bool wasPreviouslyMaximized = false;  // 假设之前不是最大化状态，这里可以根据实际记录的值判断
//             if (!wasPreviouslyMaximized) {
//                 // 首次点击最大化按钮进入最大化状态的处理逻辑，比如记录当前状态等
//                 qDebug() << "首次点击最大化按钮，进入最大化状态";
//                 wasPreviouslyMaximized = true;
//             } else {
//                 // 第二次（或后续）点击最大化按钮进入最大化状态的处理逻辑，可能和首次不同
//                 qDebug() << "第二次（或后续）点击最大化按钮，再次进入最大化状态";
//             }
//         } else if (windowStates.testFlag(Qt::WindowMinimized)) {
//             // 窗口处于最小化状态的处理逻辑，这里可以添加相应代码
//             qDebug() << "窗口处于最小化状态";
//         } else {
//             // 窗口处于正常（非最大、非最小）状态的处理逻辑
//             qDebug() << "窗口处于正常状态";
//         }
//     }
//     QMainWindow::changeEvent(event);  // 调用父类的changeEvent，确保其他相关逻辑执行
// }
